{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Adversarial-Robustness-Toolbox for scikit-learn GradientBoostingClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import GradientBoostingClassifier\n",
    "from sklearn.datasets import load_iris\n",
    "\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "\n",
    "from art.estimators.classification import SklearnClassifier\n",
    "from art.attacks.evasion import ZooAttack\n",
    "from art.utils import load_mnist\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1 Training scikit-learn GradientBoostingClassifier and attacking with ART Zeroth Order Optimization attack"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_adversarial_examples(x_train, y_train):\n",
    "    \n",
    "    # Create and fit GradientBoostingClassifier\n",
    "    model = GradientBoostingClassifier()\n",
    "    model.fit(X=x_train, y=y_train)\n",
    "\n",
    "    # Create ART classifier for scikit-learn GradientBoostingClassifier\n",
    "    art_classifier = SklearnClassifier(model=model)\n",
    "\n",
    "    # Create ART Zeroth Order Optimization attack\n",
    "    zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=20,\n",
    "                    binary_search_steps=10, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                    use_importance=False, nb_parallel=1, batch_size=1, variable_h=0.2)\n",
    "\n",
    "    # Generate adversarial samples with ART Zeroth Order Optimization attack\n",
    "    x_train_adv = zoo.generate(x_train)\n",
    "\n",
    "    return x_train_adv, model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 Utility functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_data(num_classes):\n",
    "    x_train, y_train = load_iris(return_X_y=True)\n",
    "    x_train = x_train[y_train < num_classes][:, [0, 1]]\n",
    "    y_train = y_train[y_train < num_classes]\n",
    "    x_train[:, 0][y_train == 0] *= 2\n",
    "    x_train[:, 1][y_train == 2] *= 2\n",
    "    x_train[:, 0][y_train == 0] -= 3\n",
    "    x_train[:, 1][y_train == 2] -= 2\n",
    "    \n",
    "    x_train[:, 0] = (x_train[:, 0] - 4) / (9 - 4)\n",
    "    x_train[:, 1] = (x_train[:, 1] - 1) / (6 - 1)\n",
    "    \n",
    "    return x_train, y_train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(model, x_train, y_train, x_train_adv, num_classes):\n",
    "    \n",
    "    fig, axs = plt.subplots(1, num_classes, figsize=(num_classes * 5, 5))\n",
    "\n",
    "    colors = ['orange', 'blue', 'green']\n",
    "\n",
    "    for i_class in range(num_classes):\n",
    "\n",
    "        # Plot difference vectors\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].plot([x_1_0, x_2_0], [x_1_1, x_2_1], c='black', zorder=1)\n",
    "\n",
    "        # Plot benign samples\n",
    "        for i_class_2 in range(num_classes):\n",
    "            axs[i_class].scatter(x_train[y_train == i_class_2][:, 0], x_train[y_train == i_class_2][:, 1], s=20,\n",
    "                                 zorder=2, c=colors[i_class_2])\n",
    "        axs[i_class].set_aspect('equal', adjustable='box')\n",
    "\n",
    "        # Show predicted probability as contour plot\n",
    "        h = .01\n",
    "        x_min, x_max = 0, 1\n",
    "        y_min, y_max = 0, 1\n",
    "\n",
    "        xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))\n",
    "\n",
    "        Z_proba = model.predict_proba(np.c_[xx.ravel(), yy.ravel()])\n",
    "        Z_proba = Z_proba[:, i_class].reshape(xx.shape)\n",
    "        im = axs[i_class].contourf(xx, yy, Z_proba, levels=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n",
    "                                   vmin=0, vmax=1)\n",
    "        if i_class == num_classes - 1:\n",
    "            cax = fig.add_axes([0.95, 0.2, 0.025, 0.6])\n",
    "            plt.colorbar(im, ax=axs[i_class], cax=cax)\n",
    "\n",
    "        # Plot adversarial samples\n",
    "        for i in range(y_train[y_train == i_class].shape[0]):\n",
    "            x_1_0 = x_train[y_train == i_class][i, 0]\n",
    "            x_1_1 = x_train[y_train == i_class][i, 1]\n",
    "            x_2_0 = x_train_adv[y_train == i_class][i, 0]\n",
    "            x_2_1 = x_train_adv[y_train == i_class][i, 1]\n",
    "            if x_1_0 != x_2_0 or x_1_1 != x_2_1:\n",
    "                axs[i_class].scatter(x_2_0, x_2_1, zorder=2, c='red', marker='X')\n",
    "        axs[i_class].set_xlim((x_min, x_max))\n",
    "        axs[i_class].set_ylim((y_min, y_max))\n",
    "\n",
    "        axs[i_class].set_title('class ' + str(i_class))\n",
    "        axs[i_class].set_xlabel('feature 1')\n",
    "        axs[i_class].set_ylabel('feature 2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2 Example: Iris dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### legend\n",
    "- colored background: probability of class i\n",
    "- orange circles: class 1\n",
    "- blue circles: class 2\n",
    "- green circles: class 3\n",
    "- red crosses: adversarial samples for class i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 100/100 [00:04<00:00, 20.89it/s]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 2\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 150/150 [00:08<00:00, 17.02it/s]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_classes = 3\n",
    "x_train, y_train = get_data(num_classes=num_classes)\n",
    "x_train_adv, model = get_adversarial_examples(x_train, y_train)\n",
    "plot_results(model, x_train, y_train, x_train_adv, num_classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3 Example: MNIST"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 Load and transform MNIST dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test), min_, max_ = load_mnist()\n",
    "\n",
    "n_samples_train = x_train.shape[0]\n",
    "n_features_train = x_train.shape[1] * x_train.shape[2] * x_train.shape[3]\n",
    "n_samples_test = x_test.shape[0]\n",
    "n_features_test = x_test.shape[1] * x_test.shape[2] * x_test.shape[3]\n",
    "\n",
    "x_train = x_train.reshape(n_samples_train, n_features_train)\n",
    "x_test = x_test.reshape(n_samples_test, n_features_test)\n",
    "\n",
    "y_train = np.argmax(y_train, axis=1)\n",
    "y_test = np.argmax(y_test, axis=1)\n",
    "\n",
    "n_samples_max = 200\n",
    "x_train = x_train[0:n_samples_max]\n",
    "y_train = y_train[0:n_samples_max]\n",
    "x_test = x_test[0:n_samples_max]\n",
    "y_test = y_test[0:n_samples_max]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 Train GradientBoostingClassifier classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = GradientBoostingClassifier(loss='deviance', learning_rate=0.1, n_estimators=100, subsample=1.0, \n",
    "                                   criterion='friedman_mse', min_samples_split=2, min_samples_leaf=1, \n",
    "                                   min_weight_fraction_leaf=0.0, max_depth=3, min_impurity_decrease=0.0, \n",
    "                                   min_impurity_split=None, init=None, random_state=None, max_features=None, \n",
    "                                   verbose=0, max_leaf_nodes=None, warm_start=False, presort='auto', \n",
    "                                   validation_fraction=0.1, n_iter_no_change=None, tol=0.0001)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GradientBoostingClassifier(ccp_alpha=0.0, criterion='friedman_mse', init=None,\n",
       "                           learning_rate=0.1, loss='deviance', max_depth=3,\n",
       "                           max_features=None, max_leaf_nodes=None,\n",
       "                           min_impurity_decrease=0.0, min_impurity_split=None,\n",
       "                           min_samples_leaf=1, min_samples_split=2,\n",
       "                           min_weight_fraction_leaf=0.0, n_estimators=100,\n",
       "                           n_iter_no_change=None, presort='auto',\n",
       "                           random_state=None, subsample=1.0, tol=0.0001,\n",
       "                           validation_fraction=0.1, verbose=0,\n",
       "                           warm_start=False)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(X=x_train, y=y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.3 Create and apply Zeroth Order Optimization Attack with ART"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "art_classifier = SklearnClassifier(model=model)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "zoo = ZooAttack(classifier=art_classifier, confidence=0.0, targeted=False, learning_rate=1e-1, max_iter=100,\n",
    "                binary_search_steps=20, initial_const=1e-3, abort_early=True, use_resize=False, \n",
    "                use_importance=False, nb_parallel=10, batch_size=1, variable_h=0.25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 200/200 [05:41<00:00,  1.71s/it]\n"
     ]
    }
   ],
   "source": [
    "x_train_adv = zoo.generate(x_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ZOO: 100%|██████████| 200/200 [04:15<00:00,  1.28s/it]\n"
     ]
    }
   ],
   "source": [
    "x_test_adv = zoo.generate(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.4 Evaluate GradientBoostingClassifier on benign and adversarial samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Score: 1.0000\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_train, y_train)\n",
    "print(\"Benign Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQEAAAECCAYAAAD+eGJTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAO90lEQVR4nO3dbYxc5XnG8euKvdg1mMRbx45DHXCMU2igMemKFxkBFQp1o0qAKkKtKHJoWtMEJ6F1JahVFVqRyq2AlFKKZIqLkYAEAhR/oEksCwFRYYvtEjBxgARcarxdY1ZgIMTYu3c/7Ljdkt1ndndeznjv/09azcy5Z+bcPravfc6cZ85xRAhAXh+ougEA1SIEgOQIASA5QgBIjhAAkiMEgOQqCQHby20/b/sntq+uoocS27tsP2v7adtbO6CfDbb32t4xYlm37c22X6zdzumw/q61/WptGz5t+7MV9rfQ9iO2d9p+zvbXa8s7YhsW+mvLNnS75wnYnibpBUmfkbRb0lOSVkTEj9raSIHtXZJ6ImJf1b1Iku1zJL0t6c6IOKW27G8lDUTEulqQzomIqzqov2slvR0R11fR00i2F0haEBHbbc+WtE3SRZK+qA7YhoX+Pqc2bMMqRgKnS/pJRLwUEe9J+pakCyvo44gREY9JGnjf4gslbazd36jhfzSVGKO/jhERfRGxvXb/LUk7JR2nDtmGhf7aoooQOE7Sf414vFtt/AOPU0j6vu1ttldV3cwY5kdEnzT8j0jSvIr7Gc1q28/Udhcq210ZyfYJkk6T1KsO3Ibv609qwzasIgQ8yrJOm7u8LCI+Lem3JV1RG+5iYm6VtFjSUkl9km6oth3J9jGS7pd0ZUTsr7qf9xulv7ZswypCYLekhSMe/4qkPRX0MaaI2FO73SvpQQ3vwnSa/tq+5OF9yr0V9/P/RER/RAxGxJCk21TxNrTdpeH/YHdFxAO1xR2zDUfrr13bsIoQeErSEtuLbB8l6fckbaqgj1HZPrr24YxsHy3pAkk7yq+qxCZJK2v3V0p6qMJefsHh/1w1F6vCbWjbkm6XtDMibhxR6ohtOFZ/7dqGbT86IEm1Qx1/J2mapA0R8Y22NzEG2x/X8G9/SZou6e6q+7N9j6TzJM2V1C/pGkn/IuleSR+T9IqkSyKikg/nxujvPA0PY0PSLkmXH97/rqC/syU9LulZSUO1xWs1vN9d+TYs9LdCbdiGlYQAgM7BjEEgOUIASI4QAJIjBIDkCAEguUpDoIOn5Eqiv0Z1cn+d3JvU3v6qHgl09F+E6K9RndxfJ/cmtbG/qkMAQMUamixke7mkmzQ88++fImJd6flHeUbM1NH/+/igDqhLMya9/lajv8Z0cn+d3JvU/P5+rnf0XhwY7ct7kw+ByZwc5Fh3xxk+f1LrAzB5vbFF+2Ng1BBoZHeAk4MAU0AjIXAknBwEQB3TG3jtuE4OUjvUsUqSZmpWA6sD0AqNjATGdXKQiFgfET0R0dPJH8QAWTUSAh19chAA4zPp3YGIOGR7taTv6f9ODvJc0zoD0BaNfCagiHhY0sNN6gVABZgxCCRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJNXRpchxZPL381z3tw3Nbuv7n//SEYn1w1lCxfvzivcX6rK+4WP/vG48q1rf3fLtY3zf4TrF+xn1rivUT/+TJYr0qDYWA7V2S3pI0KOlQRPQ0oykA7dOMkcBvRsS+JrwPgArwmQCQXKMhEJK+b3ub7VXNaAhAezW6O7AsIvbYnidps+0fR8RjI59QC4dVkjRTsxpcHYBma2gkEBF7ard7JT0o6fRRnrM+InoioqdLMxpZHYAWmHQI2D7a9uzD9yVdIGlHsxoD0B6N7A7Ml/Sg7cPvc3dEfLcpXU1R005eUqzHjK5ifc+5HyrW3z2zfBy7+4Pl+uOfKh8nr9q//mx2sf43/7C8WO899e5i/eWD7xbr6/o/U6x/9PEo1jvVpEMgIl6S9Kkm9gKgAhwiBJIjBIDkCAEgOUIASI4QAJIjBIDkOJ9AEw2e9+li/cY7binWP9FV/r77VHcwBov1v7j5i8X69HfKx+nPum91sT771UPF+ox95XkEs7b2FuudipEAkBwhACRHCADJEQJAcoQAkBwhACRHCADJMU+giWY8v6dY3/bzhcX6J7r6m9lO063pO7NYf+nt8nUL7lj8nWL9zaHycf75f/9vxXqrHZlnC6iPkQCQHCEAJEcIAMkRAkByhACQHCEAJEcIAMk5on1HP491d5zh89u2vk4zcNlZxfr+5eXrAkx75phi/YdfuXnCPY103b5fL9afOrc8D2DwjTeL9TirfIb6XV8rlrVoxQ/LT8CYemOL9seAR6sxEgCSIwSA5AgBIDlCAEiOEACSIwSA5AgBIDnmCXSQaXN/uVgffH2gWH/57vJx/ufO2VCsn/7XXy3W591S7ff5MXkNzROwvcH2Xts7Rizrtr3Z9ou12znNbBhA+4xnd+AOScvft+xqSVsiYomkLbXHAI5AdUMgIh6T9P5x6IWSNtbub5R0UZP7AtAmk/1gcH5E9ElS7XZe81oC0E4tP9Go7VWSVknSTM1q9eoATNBkRwL9thdIUu1271hPjIj1EdETET1dmjHJ1QFolcmGwCZJK2v3V0p6qDntAGi3ursDtu+RdJ6kubZ3S7pG0jpJ99r+kqRXJF3SyiazGNz3ekOvP7j/qIZe/8nP/6hYf+3WaeU3GBpsaP2oRt0QiIgVY5SY9QNMAUwbBpIjBIDkCAEgOUIASI4QAJIjBIDkWj5tGO1z8lUvFOuXnVo+qvvPx28p1s+95Ipiffa3nyzW0ZkYCQDJEQJAcoQAkBwhACRHCADJEQJAcoQAkBzzBKaQwTfeLNZf//LJxform94t1q++7s5i/c8+d3GxHv/xwWJ94TeeKNbVxmtkZMJIAEiOEACSIwSA5AgBIDlCAEiOEACSIwSA5BxtPPZ6rLvjDHOm8k418PtnFet3XXN9sb5o+syG1v/JO1cX60tu6yvWD720q6H1T2W9sUX7Y8Cj1RgJAMkRAkByhACQHCEAJEcIAMkRAkByhACQHPMEMG6xbGmxfuy63cX6PR//XkPrP+mRPyjWf/Uvy+dTGHzxpYbWfyRraJ6A7Q2299reMWLZtbZftf107eezzWwYQPuMZ3fgDknLR1n+zYhYWvt5uLltAWiXuiEQEY9JGmhDLwAq0MgHg6ttP1PbXZjTtI4AtNVkQ+BWSYslLZXUJ+mGsZ5oe5Xtrba3HtSBSa4OQKtMKgQioj8iBiNiSNJtkk4vPHd9RPRERE+XZky2TwAtMqkQsL1gxMOLJe0Y67kAOlvdeQK275F0nqS5kvolXVN7vFRSSNol6fKIKH/ZW8wTmOqmzZ9XrO+59MRivfeqm4r1D9T5nfX5ly8o1t88+/VifSorzROoe/GRiFgxyuLbG+4KQEdg2jCQHCEAJEcIAMkRAkByhACQHCEAJMf5BNAx7t39RLE+y0cV6z+L94r13/nqleX3f7C3WD+Scd0BAGMiBIDkCAEgOUIASI4QAJIjBIDkCAEgubpfJQYOGzq7fN2Bn14ys1g/ZemuYr3ePIB6bh44rfz+D21t6P2nKkYCQHKEAJAcIQAkRwgAyRECQHKEAJAcIQAkxzyBRNxzSrH+wtfKx+lvW7axWD9nZvn7/I06EAeL9ScHFpXfYKjupTFSYiQAJEcIAMkRAkByhACQHCEAJEcIAMkRAkByzBM4gkxfdHyx/tPLPlqsX3vpt4r13z1m34R7aqa1/T3F+qM3nVmsz9lYvm4BRld3JGB7oe1HbO+0/Zztr9eWd9vebPvF2u2c1rcLoNnGsztwSNKaiDhZ0pmSrrD9a5KulrQlIpZI2lJ7DOAIUzcEIqIvIrbX7r8laaek4yRdKOnwPNKNki5qVZMAWmdCHwzaPkHSaZJ6Jc2PiD5pOCgkzWt2cwBab9whYPsYSfdLujIi9k/gdatsb7W99aAOTKZHAC00rhCw3aXhALgrIh6oLe63vaBWXyBp72ivjYj1EdETET1dmtGMngE00XiODljS7ZJ2RsSNI0qbJK2s3V8p6aHmtweg1cYzT2CZpC9Ietb207VlayWtk3Sv7S9JekXSJa1pceqYfsLHivU3f2NBsX7pX323WP+jDz1QrLfamr7ycfwn/rE8D6D7jn8v1ucMMQ+gFeqGQET8QJLHKJ/f3HYAtBvThoHkCAEgOUIASI4QAJIjBIDkCAEgOc4nMAHTF3ykWB/YcHSx/uVFjxbrK2b3T7inZlr96tnF+vZblxbrc7+zo1jvfovj/J2IkQCQHCEAJEcIAMkRAkByhACQHCEAJEcIAMmlmifw3m+Vv8/+3h8PFOtrT3y4WL/gl96ZcE/N1D/4brF+zqY1xfpJf/7jYr37jfJx/qFiFZ2KkQCQHCEAJEcIAMkRAkByhACQHCEAJEcIAMmlmiew66Jy5r1w6n0tXf8tbywu1m969IJi3YNjnfl92EnXvVysL+nvLdYHi1VMVYwEgOQIASA5QgBIjhAAkiMEgOQIASA5QgBIzhFRfoK9UNKdkj6i4a+Mr4+Im2xfK+kPJb1We+raiCh+4f5Yd8cZ5mrmQLv1xhbtj4FRJ5qMZ7LQIUlrImK77dmSttneXKt9MyKub1ajANqvbghERJ+kvtr9t2zvlHRcqxsD0B4T+kzA9gmSTpN0eP7patvP2N5ge06TewPQBuMOAdvHSLpf0pURsV/SrZIWS1qq4ZHCDWO8bpXtrba3HtSBJrQMoJnGFQK2uzQcAHdFxAOSFBH9ETEYEUOSbpN0+mivjYj1EdETET1dmtGsvgE0Sd0QsG1Jt0vaGRE3jli+YMTTLpZUviQtgI40nqMDyyR9QdKztp+uLVsraYXtpZJC0i5Jl7ekQwAtNZ6jAz+QNNrxxfJJ+AEcEZgxCCRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcoQAkBwhACRHCADJEQJAcnWvO9DUldmvSfrPEYvmStrXtgYmjv4a08n9dXJvUvP7Oz4iPjxaoa0h8Asrt7dGRE9lDdRBf43p5P46uTepvf2xOwAkRwgAyVUdAusrXn899NeYTu6vk3uT2thfpZ8JAKhe1SMBABUjBIDkCAEgOUIASI4QAJL7H4v8SYP7urYSAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Training Predicted Label: 5\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_train[0:1, :])[0]\n",
    "print(\"Benign Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Score: 0.0050\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_train_adv, y_train)\n",
    "print(\"Adversarial Training Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_train_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Training Predicted Label: 6\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_train_adv[0:1, :])[0]\n",
    "print(\"Adversarial Training Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Score: 0.5800\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_test, y_test)\n",
    "print(\"Benign Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Benign Test Predicted Label: 7\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_test[0:1, :])[0]\n",
    "print(\"Benign Test Predicted Label: %i\" % prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Score: 0.1500\n"
     ]
    }
   ],
   "source": [
    "score = model.score(x_test_adv, y_test)\n",
    "print(\"Adversarial Test Score: %.4f\" % score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(x_test_adv[0, :].reshape((28, 28)))\n",
    "plt.clim(0, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Adversarial Test Predicted Label: 2\n"
     ]
    }
   ],
   "source": [
    "prediction = model.predict(x_test_adv[0:1, :])[0]\n",
    "print(\"Adversarial Test Predicted Label: %i\" % prediction)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
